GtkPopover: Properly update a11y parent
authorMatthias Clasen <mclasen@redhat.com>
Wed, 30 Jul 2014 21:09:51 +0000 (23:09 +0200)
committerMatthias Clasen <mclasen@redhat.com>
Wed, 30 Jul 2014 21:14:41 +0000 (23:14 +0200)
When the relative-to widget changes, update the accessible parent
of the popovers accessible.

https://bugzilla.gnome.org/show_bug.cgi?id=733923

gtk/a11y/gtkpopoveraccessible.c

index 55eaaed9c62ee3a5ec6df485cbbf2d1708fd8374..63bceab01448367ba79bbed75e14fcb9c74c2666 100644 (file)
@@ -61,6 +61,13 @@ popover_update_relative_to (AtkObject  *obj,
 
   if (widget)
     {
+      AtkObject *parent;
+
+      parent = gtk_widget_get_accessible (widget);
+
+      if (parent)
+        atk_object_set_parent (obj, parent);
+
       g_object_add_weak_pointer (G_OBJECT (priv->widget),
                                  (gpointer*) &priv->widget);
       widget_accessible = gtk_widget_get_accessible (widget);
@@ -97,18 +104,10 @@ static void
 gtk_popover_accessible_initialize (AtkObject *obj,
                                    gpointer   data)
 {
-  GtkPopover *popover;
-  AtkObject *parent;
+  GtkPopover *popover = GTK_POPOVER (data);
 
   ATK_OBJECT_CLASS (gtk_popover_accessible_parent_class)->initialize (obj, data);
 
-  popover = GTK_POPOVER (data);
-
-  parent = gtk_widget_get_accessible (gtk_popover_get_relative_to (popover));
-
-  if (parent)
-    atk_object_set_parent (obj, parent);
-
   g_signal_connect (popover, "notify",
                     G_CALLBACK (popover_notify_cb), obj);
   popover_update_relative_to (obj, popover);